
package ciudadano;

import Util.MD5;
import com.icesoft.faces.component.ext.HtmlInputSecret;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlOutputLabel;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import javax.faces.FacesException;


public class Login extends AbstractPageBean
{
    private HtmlInputSecret inputSecretPassword = new HtmlInputSecret();
    private HtmlInputText inputTextUserLogin = new HtmlInputText();
    private HtmlOutputLabel labelMessageUser = new HtmlOutputLabel();
    private HtmlOutputLabel labelMessagePass = new HtmlOutputLabel();


    private void _init() throws Exception
    {
    }

    public Login()
    {
    }

    public String buttonLogin_action()
    {
        String user = (String) inputTextUserLogin.getText();
        String password = (String) inputSecretPassword.getValue();
        //Obtenmos el MD5 del password
         byte[] pass = MD5.getHashMD5(password,null);

        //TODO: initializeValues();
        if ((user.matches("")) && (password.matches("")))
        {
            //TODO: Se muestran los dos mensajes (el de usuario y el de contraseña)
            labelMessageUser.setRendered(true);
            labelMessageUser.setVisible(true);
            labelMessagePass.setRendered(true);
            labelMessagePass.setVisible(true);
            return null;
        }
        else if (user.matches(""))
        {
            //TODO: Usuario vacio
            labelMessageUser.setRendered(true);
            labelMessageUser.setVisible(true);
            return null;
        }
        else if (password.matches(""))
        {
            //TODO: Password vacio
            labelMessagePass.setRendered(true);
            labelMessagePass.setVisible(true);
            return null;
        }
        else
        {
//            User userX = null;
//            try
//            {
//
//               userX =
//                   userFacade.findUserByUserNameAndPassword(user, MD5.toHexadecimal(pass));
//            }
//            catch(NonexistentEntityException ex)
//            {
//                ex.printStackTrace();
//                Logger.getLogger(ManagementUser.class.getName()).
//                    log(Level.SEVERE, null, ex);
//                //TODO:
////                mainMenuBean.setPanelPopUp(popUpHeaderError,
////                    popUpMessageError, popUpvisible);
////                textFieldUsername.resetValue();
//                return null;
//            }
//
//            if (userX == null)
//            {
//                //TODO:
////                labelMessage.setRendered(true);
////                labelMessage.setVisible(true);
////                textFieldUsername.resetValue();
//                return null;
//            }
//            else
//            {
//                //TODO:
//                getSessionBean1().setActualUser(userX);
//                return "MainMenu";
//            }
        }
        return "case1";
    }

    public void init()
    {
        super.init();
        try
        {
            _init();
        } 
        catch (Exception e)
        {
            log("Page1 Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
        }
    }

    public void preprocess() {
    }

    public void prerender() {
    }

    public void destroy() {
    }

    public HtmlInputSecret getInputSecretPassword() {
        return inputSecretPassword;
    }

    public void setInputSecretPassword(HtmlInputSecret inputSecretPassword) {
        this.inputSecretPassword = inputSecretPassword;
    }

    public HtmlInputText getInputTextUserLogin() {
        return inputTextUserLogin;
    }

    public void setInputTextUserLogin(HtmlInputText inputTextUserLogin) {
        this.inputTextUserLogin = inputTextUserLogin;
    }

    public HtmlOutputLabel getLabelMessageUser() {
        return labelMessageUser;
    }

    public void setLabelMessageUser(HtmlOutputLabel labelMessageUser) {
        this.labelMessageUser = labelMessageUser;
    }

    public HtmlOutputLabel getLabelMessagePass() {
        return labelMessagePass;
    }

    public void setLabelMessagePass(HtmlOutputLabel labelMessagePass) {
        this.labelMessagePass = labelMessagePass;
    }

  
}

